/*
 * FifteenPuzzleNodeIDA.h
 *
 *  Created on: 18/05/2011
 *      Author: frandres
 */

#ifndef FIFTEENPUZZLENODEIDA_H_
#define FIFTEENPUZZLENODEIDA_H_

#include <iostream>
using namespace std;

class FifteenPuzzleNodeIDA{
public:

	FifteenPuzzleNodeIDA();
	virtual ~FifteenPuzzleNodeIDA();

    void print();
    void printInv();
    void print(bool *X);
    bool isGoal();

	/*
	 * La variable board especifica el tablero de un 15-puzzle.
	 * La i-esima posición del arreglo especifica que número está
	 * en la casilla i-ésima del 15 puzzle.
	 *
	 * Ejemplo:
	 *
	 *  _ _  _ _  _ _  _ _
	  |   0|   1|   2|   3|
	  |1 _ |15 _|14 _|2 _ |
	  |   4|   5|   6|   7|
	  |10 _|8 _ |11 _|3 _ |
	  |   8|   9|  10|  11|
	  |7 _ |9 _ |4 _ |12 _|
	  |  12|  13|  14|  15|
	  |13 _|5 _ |_ _ |6 _ |

	  board[0] contiene 1, board [1] contiene 15 y así...
	  */
    int invBoard[16];
    char h, g;

};


#endif /* FIFTEENPUZZLENODEIDA_H_ */
